Skip to content

Weight Initialization

Variance

If Linear activation

  • One layer variance scaled by
Var[y]=nVar[w]Var[x]
  • Many layers variance scaled by
Var[y]=dndVar[wd]Var[x]

If ndVar[wd]>1Exploding If ndVar[wd]<1Vanishing

Var=σ2

Variance Scaling

Xavier Initialization

Xavier Initialization for Fully Connected Network

Forward

ninputVar[w]=1

Backward

noutputVar[w]=1

Consider Forward and Backward

Var[w]=2ninput+noutput
  • Gaussian Distribution
wN(0,σ=1n)
  • Uniform Distribution
wU(a,a),a=3n

Replace n with ninput+noutput2

Xavier Initialization for ConvNet

The number of connections feeding into/out of a node:

ninput=Cin×Kh×Kwnoutput=Cout×Kh×Kw

Kaiming Initialization

Kaiming Initialization for ReLU

  • One Layer
Var[y]=12nVar[w]Var[x]
  • Many Layers
Var[y]=d12ndVar[wd]Var[x]
  • Forward
12ninputVar[w]=1
  • Backward
12noutputVar[w]=1

Consider Forward and Backward

  • Gaussian Distribution
wN(0,σ=2n)
  • Uniform Distribution
wU(a,a),a=6n

Replace n with ninput+noutput2

Summary

Initialization MethodsActivation FunctionWeight VarianceTarget
Xavier InitializationSigmoid, Tanh2nin+nout平衡前向和反向传播的方差
Kaiming InitializationReLU, Leaky ReLU2nin补偿 ReLU 截断负值信号,确保方差不衰减

1. Signals can be exploding/vanishing

  • 信号可能会爆炸或消失:在深度神经网络中,前向传播和反向传播的信号经过多层网络时,如果初始化不当,信号的方差可能会逐渐变大(梯度爆炸)或逐渐减小到接近零(梯度消失)。这种现象会导致网络训练困难:
    • 梯度消失:早期层几乎没有梯度更新,导致模型难以学习到深层特征。
    • 梯度爆炸:梯度过大,导致训练不稳定,甚至网络无法收敛。

因此,适当的权重初始化可以在一定程度上缓解梯度消失或爆炸的问题。

2. Product of scaling factors

  • 缩放因子的乘积:在多层网络中,信号的方差会受到每一层的缩放因子的影响,这些缩放因子包括权重的方差和输入连接的数量。多层网络中每一层的方差会累积(即每一层的缩放因子相乘),最终导致信号变得过大或过小。因此,初始化中的缩放因子(即权重的方差)需要精心设置,以确保信号的稳定传递。

3. Initialization is driven by normalization

  • 初始化依赖于归一化:初始化的设计通常依赖于信号在不同层之间的方差归一化(Normalization)。例如,Xavier 和 Kaiming 初始化方法都根据层输入或输出的数量来选择合适的方差,从而在前向和反向传播中保持信号的方差平衡。归一化使得信号在层与层之间不会失去平衡,从而避免梯度消失或爆炸。

4. Initialization is based on strong assumptions

  • 初始化基于强假设:权重初始化通常假设输入和输出分布具有一定的独立性和零均值。例如,Xavier 和 Kaiming 初始化假设每个输入和输出的分布是独立同分布(iid),并且权重的期望值为零。这些假设有助于推导出初始化方差的公式,但在实际应用中,这些假设可能不完全成立。因此,初始化并不能完全解决深度网络的训练难题。

5. Initialization is necessary, but often not sufficient

  • 初始化是必要的,但往往不够:虽然合适的权重初始化对稳定训练非常重要,但在深度网络中,仅仅靠初始化往往是不够的。为了进一步改善训练,通常还需要其他技术的配合,比如:
    • Batch Normalization:在每一层对信号进行归一化,进一步防止梯度消失或爆炸。
    • 残差连接(Residual Connections):允许信号绕过若干层,减少梯度消失问题。
    • 更高级的优化算法(例如 Adam、RMSProp):帮助更快地收敛,并且在初始化不完美的情况下提供一定的鲁棒性。